#include "StdAfx.h"
#include "zapiszDoPliku.h"
#include <sstream>

void zapiszDoPliku( vector<vector<Wielomian> > Wielomiany, vector<Punkt> Wezly )
{
	ofstream ZapisDoPliku;
	ZapisDoPliku.open ("wyniki.txt");

	for(int i = 0; i < Wezly.size(); i++)
	{
		ZapisDoPliku << "P[" << i << "," << i << "]" << " = " << Wezly[i].y << endl;
	}

	ZapisDoPliku << endl;

	for(int j = 1; j < Wezly.size(); j++)
	{
		ZapisDoPliku << endl << endl << endl;

		for(int i = 0; i < Wezly.size() - j; i++)
		{
			Wielomian A = Wielomian(-1, Wezly[i + j].x);
			Wielomian B = Wielomiany[i][i + j - 1];
			Wielomian C = Wielomian(1, -Wezly[i].x);
			Wielomian D = Wielomiany[i + 1][i + j];
			double e = Wezly[i + j].x;
			double f = Wezly[i].x;

			stringstream Numeracja;
			Numeracja << "P[" << i << "," << i+j << "] = ";
			streamsize dlugoscNumeracji = Numeracja.str().size();

			stringstream Licznik;
			Licznik << A << " * " << B << " + " << C << " * " << D;
			streamsize dlugoscLicznika = Licznik.str().size();

			stringstream Kreska;
			Kreska.fill('-');
			Kreska.width(dlugoscLicznika);
			Kreska << left << "";

			stringstream Wynik;
			Wynik << " = " << Wielomiany[i][i+j];

			stringstream Mianownik;
			Mianownik << e << "-" << f << endl;
			streamsize dlugoscMianownika = Mianownik.str().size();

			stringstream ZapisDzialania;

			ZapisDzialania.fill(' ');
			ZapisDzialania.width(dlugoscNumeracji);
			ZapisDzialania << "";

			ZapisDzialania << Licznik.str() << endl;

			ZapisDzialania << Numeracja.str();
			ZapisDzialania << Kreska.str();
			ZapisDzialania << Wynik.str() << endl;
			
			ZapisDzialania.fill(' ');
			ZapisDzialania.width( dlugoscNumeracji + dlugoscLicznika/2 - dlugoscMianownika/2 );
			ZapisDzialania << right << "" << Mianownik.str() << endl;

			ZapisDoPliku << ZapisDzialania.str() << endl;
		}
	}

	ZapisDoPliku.close();
}